有很多帖子写for循环与while循环的区别是循环变量的差异,引用其他人的原话,贴一张截图,他们大多是这样描述的 ![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/04b21d8c9dca124e637d55c6fa0ff61e.png)
个人认为上图所述的从内存角度考虑,for循环既可以使用局部变量,也可以使用外部变量,而while循环的终止条件则必须是外部变量。下面是都是用外部变量的测试片段
@org.junit.Test
public void testForWhile() {
// 方式1
int i = 5;
for (; i 10) {
break;
}
j++;
}
System.out.println(j);
}
/** result:
-------11
-------11
*/
所以for循环能够实现while循环的功能,但while循环不能采用循环内的局部变量作为终止条件。但为什么有的时候又要用while循环呢?个人觉得是因为看起来更简洁,逻辑更清晰。
总之总结一句话,for循环与while不同在于for循环可以采用局部变量作为循环变量,除了考虑这一点,在其他功能实现上谁看起来更简洁清晰就用谁。另外还有个 do while 循环则是先执行一次再进行判断,所以该循环在先需要执行一次的情况下,代码更加简洁。
|